class Resoconti::SegnalazioniController < DefaultController
  require_role self.parent_name.underscore

  active_scaffold :segnalazione do |config|
    config.label = Application.controller_label(self)
    list.sorting = {:data => 'DESC'}
    config.actions.add :field_search, :config_list, :export

    # definizione colonne
    columns = [:data, :tipo_segnalazione, :riferimento, :segnalata_da, :luogo, :descrizione, :gestita_da, :esito, :chiusa]
    columns_form = [:data, :tipo_segnalazione, :riferimento_id, :segnalata_da, :luogo, :descrizione, :gestita_da, :esito, :chiusa]
    columns_list = [:data, :tipo_segnalazione, :riferimento, :luogo, :descrizione, :gestita_da, :esito, :chiusa]

    # visualizzazione colonne
    config.columns = config.show.columns = config.list.columns = columns
    config.update.columns = config.create.columns = columns_form
    config.field_search.columns = columns
    config.config_list.default_columns = columns_list
    
    # configurazione colonne
    config.columns[:tipo_segnalazione].form_ui = :select
    config.columns[:gestita_da].form_ui = :record_select
    config.columns[:gestita_da].options[:params] = {:filter => 'attivi'}
    [:descrizione, :esito].each { |i| config.columns[i].options = NOTE_TEXTAREA }
    [:segnalata_da, :luogo, :descrizione, :gestita_da, :esito].each { |i| config.columns[i].inplace_edit = :ajax }
    config.columns[:tipo_segnalazione].update_column = :riferimento_id
    
    # azioni
    config.columns[:data].set_link('nested', :parameters => {:associations => :azioni_segnalazione})
    config.action_links.add "Allegati", :action => 'nested', :parameters => {:associations => :allegati}, :type => :member
    
    #ricerca
    #config.columns[:assicurazione].search_sql = 'partners.ragione_sociale'
  end
  
  protected

  def set_conditions
    case params[:filter]
    when 'da_risolvere'
      ['risolto = 0']
    when 'recenti'
      ['risolto = 0 OR data > ?', 4.day.ago.to_date]
    else
      []
    end
  end
  
  def conditions_for_collection
    set_conditions
  end

  def record_select_conditions_from_controller
    set_conditions
  end 
  
  def controller_before_create_update_save(record)
    record.riferimento_type = record.tipo_segnalazione.riferimento_type unless record.tipo_segnalazione.nil?
  end
end
